﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HidesaburoDotNET.Core2
{
    public class GameRule {
        public bool PermitDoubleRon { get { return false; } }
    }
    public class Mentsu { }

    public interface IFieldInfo
    {
        int Kyoku { get; }
        int Renchan { get; }
        GameRule Rule { get; }
    }

    public interface IHou
    {
        List<Hai> Discards { get; }
    }

    public interface IYama
    {
        int Left { get; }
    }

    public interface IEnemy
    {
        IHou Hou { get; }
        IEnemyCards Cards { get; }
        bool Reached { get; }
        int Score { get; }
        bool Parent { get; }
        Kaze Kaze { get; }
    }

    public interface IEnemyCards
    {
        List<Mentsu> RevealedMentsu { get; }
    }


    public interface IMyAvator
    {
        IHou Hou { get; }
        IMyCards Cards { get; }
        bool Reached { get; }
        int Score { get; }
        bool Parent { get; }
        Kaze Kaze { get; }


        void Discard(Hai hai);
        void Ankan(Hai hai);
        void Pon();
        void Chi(ChiType type);
        void Chi();
        void Kan();
        void Ron();
        void Pass();
        void Agari();

    }
    public enum ChiType
    {
        Low,
        Mediam,
        High
    }
    public interface IMyCards : IEnemyCards
    {
        List<Hai> AllCards { get; }
        List<Hai> CardsInHand { get; }
    }


}
